using System;
using System.Collections.Generic;
using System.Text;
using BusinessEntity;
using System.Data.Common;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace BusinessLogic
{
    public class crFichaInvitado : CrBase
    {

        #region GetFichaInvitadoLista
        public DataSet GetFichaInvitado()
        {

            DataSet ds = new DataSet();
            try
            {

                string sql = "sp_TB_SOC_ESI_Invitado_SelectAll";
                ds = objDBSQLClub.ExecuteDataSet(CommandType.Text, sql);
            }
            catch
            {
                //grabarlo en ocurrencias
                ds.Tables.Add();
            }
            return ds;
        }
        #endregion


        #region GetDatosFichaInvitado
        public CCInvitado GetDatosFichaInvitado(int InvitadoID)
        {
            CCInvitado objInvitadoBE = new CCInvitado();
            DataSet ds = new DataSet();
            try
            {
                ds = objDBSQLClub.ExecuteDataSet("sp_TB_SOC_ESI_Invitado_SelectByPrimaryKey", InvitadoID);
                objInvitadoBE.InvitadoID = Convert.ToInt32(ds.Tables[0].Rows[0][3].ToString());
                objInvitadoBE.PersonaID = Convert.ToInt32(ds.Tables[0].Rows[0][4].ToString());
                objInvitadoBE.CodPersona = Convert.ToInt32(ds.Tables[0].Rows[0][7].ToString());
                objInvitadoBE.Nombres = ds.Tables[0].Rows[0][8].ToString();
                objInvitadoBE.ApellidoPaterno = ds.Tables[0].Rows[0][9].ToString();
                objInvitadoBE.ApellidoMaterno = ds.Tables[0].Rows[0][10].ToString();
                objInvitadoBE.TipoDocumento = ds.Tables[0].Rows[0][12].ToString();
                objInvitadoBE.NroDocumento = ds.Tables[0].Rows[0][13].ToString();
              }
            catch
            {
                //grabarlo en ocurrencias
                ds.Tables.Add();


            }


            return objInvitadoBE;
        }
        #endregion

        #region GrabarFichaInvitado
        public bool GrabarFichaInvitado(CCInvitado objFichaInvitado, int RegistrarIngreso, int TitularID)
        {
            int result = 0;
            int resultIngreso = 0;
            string NumeroPersona= "";
            string coneccionString = ConfigurationManager.ConnectionStrings["ClubConnectionString"].ConnectionString;
            //CCPersona Persona;
            try
            {

                SqlConnection conn = new SqlConnection(coneccionString);
                SqlCommand command = new SqlCommand("sp_TB_SOC_ESI_Invitado_Grabar", conn);
                command.CommandType = CommandType.StoredProcedure;
               
      

                command.Parameters.Add("@TB_SOC_ESI_Invitado_ID", SqlDbType.Int, 8);
                command.Parameters["@TB_SOC_ESI_Invitado_ID"].Direction = ParameterDirection.Output;
                command.Parameters.Add("@TB_SOC_ESI_Persona_ID", SqlDbType.Int, 8);
                command.Parameters["@TB_SOC_ESI_Persona_ID"].Direction = ParameterDirection.Output;
                command.Parameters.Add("@codPersona", SqlDbType.Int, 8);
                command.Parameters.Add("@Nombres", SqlDbType.VarChar, 255);
                command.Parameters.Add("@apellidoPaterno", SqlDbType.VarChar, 255);
                command.Parameters.Add("@apellidoMaterno", SqlDbType.VarChar, 255);
                command.Parameters.Add("@tipoDocumento", SqlDbType.VarChar, 255);
                command.Parameters.Add("@nroDocumento", SqlDbType.VarChar, 255);


                command.Parameters["@TB_SOC_ESI_Invitado_ID"].Value = objFichaInvitado.InvitadoID;
                command.Parameters["@TB_SOC_ESI_Persona_ID"].Value = objFichaInvitado.PersonaID;
                command.Parameters["@codPersona"].Value = objFichaInvitado.CodPersona;
                command.Parameters["@Nombres"].Value = objFichaInvitado.Nombres;
                command.Parameters["@apellidoPaterno"].Value = objFichaInvitado.ApellidoPaterno;
                command.Parameters["@apellidoMaterno"].Value = objFichaInvitado.ApellidoMaterno;
                command.Parameters["@tipoDocumento"].Value = objFichaInvitado.TipoDocumento;
                command.Parameters["@nroDocumento"].Value = objFichaInvitado.NroDocumento;


                conn.Open();
                result = command.ExecuteNonQuery();


                NumeroPersona = command.Parameters["@TB_SOC_ESI_Persona_ID"].Value.ToString();

          
                conn.Close();

                //Registrar Ingreso al club
            if (RegistrarIngreso == 1 & TitularID != 0) 
                {
                       objFichaInvitado.PersonaID = Convert.ToInt32(NumeroPersona);
                       resultIngreso = objDBSQLClub.ExecuteNonQuery("sp_TB_SOC_ESI_RegistrarIngresosSalidas_GrabarIngreso",
                                       objFichaInvitado.PersonaID, "", TitularID);
                       resultIngreso = 1;
                
                }



                result = 1;

            }
            catch
            {
                result = 0;
            }
            return (result > 0);
        }
        #endregion

        #region GetValidarNumeroInvitado
        public int GetValidarNumeroInvitado(int TitularID)
        {
            int tmpNroInvitado = 0;
            DataSet ds = new DataSet();
            try
            {
                ds = objDBSQLClub.ExecuteDataSet("sp_TB_SOC_ESI_RegistarIngresoNumeroInvitadosTitular", TitularID);
                tmpNroInvitado = Convert.ToInt32(ds.Tables[0].Rows[0][0].ToString());
                
            }
            catch
            {
                //grabarlo en ocurrencias
                ds.Tables.Add();


            }


            return tmpNroInvitado;
        }
        #endregion

        #region GetValidarNumeroDocumento
        public string GetValidarNumeroDocumento(string TipoDocumento, String NroDocumento, int PersonaID)
        {
            string tmpCodigoPersona = "";
            DataSet ds = new DataSet();
            try
            {
                ds = objDBSQLClub.ExecuteDataSet("sp_ValidaNumeroDocumento", TipoDocumento, NroDocumento, PersonaID);
                tmpCodigoPersona = ds.Tables[0].Rows[0][0].ToString();

            }
            catch
            {
                //grabarlo en ocurrencias
                ds.Tables.Add();


            }
            return tmpCodigoPersona;
        }
        #endregion

    }
}
